1. Technical Field
The present invention relates generally to an improved data processing system and, in particular, to a mechanism for prioritization in a multi-tier environment. Still more particularly, the present invention provides a mechanism for transferring request priorities across related nodes, that is nodes required in processing a given transaction, job, or the like, in a multi-tier data processing system network.
2. Description of Related Art
Various networked data processing system traffic control schemes for queuing and filtering network traffic are used for providing service level agreement (SLA) traffic prioritization. For example, the Linux network stack has infrastructure for traffic control that has queuing disciplines (qdisc) and filters. A hierarchy of qdiscs can be constructed jointly with a class hierarchy to support Quality of Service (QoS) features. Traffic can be routed to different classes by employing filters that are matched against packet header fields. However this is available only for the transmit side of the network protocol stack.
For the receive side, that is the server side in a client-server network or receive side of any one of the server systems in the multi-tier environment, prioritization is provided on a connection basis. For example, when an incoming connection is established, the connection may be prioritized based on one or more priority filters to queue the connection in one of a plurality of queues allocated to different priority classes. Based on this, priority connections are established. This priority assignment is referred to as connection queuing and is implemented as part of the three-phase connection process in the TCP/lP protocol. In such systems, client prioritization is enforced only at connection time. As a result, the processing of requests from a higher priority client is started before a lower priority client request is processed. However, this does not guarantee that processing of data from higher priority clients is performed before data from a lower priority client as the priority is not enforced at the data frame level.
It would be advantageous to provide a mechanism for frame-level prioritization for providing SLA prioritization queuing of inbound traffic at a server providing not only connection time priority but also data processing priority to clients of different priorities. It would be further advantageous to provide a mechanism for providing frame-level prioritization in a multi-processor environment for priority queuing of incoming traffic on a per-processor basis.
Moreover, processing of a transaction may span across a plurality of systems in a multi-tier data processing system network. For example, a client may start a transaction with a web server, and the webserver, in turn, may be required to access a backend database server, route the request to another webserver, or access a web application server to complete the transaction request. Therefore, the first tier web server, in turn, may require connection with a web application server, which eventually may end up connecting to a database server to complete the processing. No mechanisms exist for transferring a network priority across multiple systems involved in processing of a transaction for network layer processing.
It would be advantageous to provide a mechanism to transfer a priority class across multiple nodes that are involved in processing a single transaction or job in a data processing system network. It would further be advantageous to provide a mechanism to transfer a priority class that includes the priority at the connection level and at the inbound data frame level in a multi-tier data processing system network.